這系列文章建議在有Flutter基礎的能力後在觀看,會比較好理解,關於Flutter 的介紹可以參考之前的文章從零開始的Flutter世界。簡單來說Flutter就是Google推行的跨平台開發框架,目的是為了能夠同時開發Android以及iOS。
總體而言在畫面設計上皆可透過Flutter開發,但功能上還是會有原生開發的需求,所以需要學習如何串接Native的功能,希望能藉由這次的鐵人賽學習和分享我的心得。
接下來這30天的規劃大概會有以下幾個重點:
有興趣的朋友們可以先準備好環境(Android、iOS、Flutter),之後範例可以跟著實作。
第一天我們就先簡單介紹一下甚麼是Packages & Plugins
參考資料:官方文件
Flutter 支持使用其他開發者貢獻給 Flutter 和 Dart 生態系統的共享package,這允許開發者能夠快速構建應用程序,而無需從頭開始開發所有內容
Package和插件(plugin)有什麼區別呢?
插件(plugin)是package的一種,全稱是plugin package,我們簡稱為plugin,中文叫插件
Packages
Dart package 至少包含一個pubspec.yaml
文件以及包含共享程式碼的lib
目錄。此外,一個package 可以包含依賴關係(在pubspec.yaml
文件裡聲明),像是Dart libraries、資源、測試、圖片等。pub.dev上列出了很多開發者開發和發布package,讓其他開發者可以應用在自己的app 裡
Plugins
插件(plugin package)是一種特別的package,特別指那些幫助你獲得原生平台特性的package。插件可以為Android(使用Kotlin或Java語言)、 iOS(使用Swift或Objective-C語言)、Web、macOS、Windows、Linux平台,或其任意組合的平台。比如:某個插件可以為Flutter App 提供使用原生平台的攝像頭的功能
在pub.dev 上的package 已有很多實用的功能,例如,網絡請求(http
),自定義導航/路由處理(fluro
),整合關於設備的API(如url_launcher
和 battery
),以及使用第三方平台的SDK(如Firebase的(FlutterFire)